package objetos.aeronaves.civiles;

import movimiento.Posicion;
import movimiento.patrones.Circular;
import objetos.Energia;
import objetos.aeronaves.Civil;
import org.jdom.*;
import vistas.FactoryVistas;
import ar.uba.fi.algo3.titiritero.ControladorJuego;
import ar.uba.fi.algo3.titiritero.vista.Imagen;
import auxiliares.Vector;

/*
 * Clase que modela al helic�ptero de la polic�a
 */
public class Helicoptero extends Civil {

	public Helicoptero() {
		super();
		this.maxRetornos = 1;
		this.setTamanio(22);
		this.setEnergia(new Energia(15));
		this.setVelocidad(new Vector(2, 0));
		this.setPatron(new Circular(15));
		this.setPuntajeOtorgado(-200);
	}

	public Helicoptero(Posicion posicion) {
		this();
		this.setPosicion(posicion);
	}

	public Helicoptero(int x, int y) {
		this(new Posicion(x, y));
	}

	@Override
	public Imagen darVista(ControladorJuego controlador) {
		return FactoryVistas.crearVista(this, controlador);
	}

	/* Persistencia */
	public Helicoptero(Element nodo) {
		this(Integer.parseInt(nodo.getAttributeValue("posicionX")), Integer
				.parseInt(nodo.getAttributeValue("posicionY")));
	}

	/* NodoXML a partir de instancia */
	@Override
	public Element obtenerNodo() {
		Element nodo = new Element("helicoptero");
		nodo.setAttribute(new Attribute("posicionX", Integer.toString(this
				.getPosicion().getEnX())));
		nodo.setAttribute(new Attribute("posicionY", Integer.toString(this
				.getPosicion().getEnY())));
		return nodo;
	}

}
